+2004-12-09 Matthias Clasen <mclasen@redhat.com>
+
+ * xdgmimealias.c (_xdg_mime_alias_read_from_file):
+ * xdgmimeparent.c (_xdg_mime_parent_read_from_file): Make
+ repeated calls accumulate the results, don't call qsort()
+ on empty arrays. (#160838, Mariano Suárez-Alvarez)
+
2004-12-02 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.6 ===
/* FIXME: Not UTF-8 safe. Doesn't work if lines are greater than 255 chars.
* Blah */
- alloc = 16;
- list->aliases = malloc (alloc * sizeof (XdgAlias));
+ alloc = list->n_aliases + 16;
+ list->aliases = realloc (list->aliases, alloc * sizeof (XdgAlias));
while (fgets (line, 255, file) != NULL)
{
char *sep;
fclose (file);
- qsort (list->aliases, list->n_aliases,
- sizeof (XdgAlias), alias_entry_cmp);
+ if (list->n_aliases > 1)
+ qsort (list->aliases, list->n_aliases,
+ sizeof (XdgAlias), alias_entry_cmp);
}
/* FIXME: Not UTF-8 safe. Doesn't work if lines are greater than 255 chars.
* Blah */
- alloc = 16;
- list->parents = malloc (alloc * sizeof (XdgMimeParents));
+ alloc = list->n_mimes + 16;
+ list->parents = realloc (list->parents, alloc * sizeof (XdgMimeParents));
while (fgets (line, 255, file) != NULL)
{
char *sep;
fclose (file);
- qsort (list->parents, list->n_mimes,
- sizeof (XdgMimeParents), &parent_entry_cmp);
+ if (list->n_mimes > 1)
+ qsort (list->parents, list->n_mimes,
+ sizeof (XdgMimeParents), &parent_entry_cmp);
}